package com.ruoyi.kjy.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.ruoyi.common.mp.domain.CommonEntity;
import com.ruoyi.common.mp.handle.ListToStringHandle;
import io.swagger.models.auth.In;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * @Description:
 * @Author: Hi，Wang
 * @Date: 10/24,0024 15:16
 */

@Data
@TableName(autoResultMap = true)
public class NewEnterprise extends CommonEntity {


    @TableId(type = IdType.AUTO)
    private Long id;

    private Long userId;

    //
    private String name;
    private String applyDate;
    private String itemName;
    private Integer numbers;
    private String contactName;
    private String contactPhone;
    private String contactEmail;
    private String agentName;
    private String agentPhone;
    private String agentEmail;
    private double registerMoney;
    private double raisedMoney;
    private Integer initialEmployees;
    private String expectedRegisterDate;
    private String region;
    private String shareholdingRatio;
    private boolean isQualified;
    private String businessScope;

    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<EnterpriseMemberDTO> members;

    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<ShareholderDTO> shareholders;
    private String projectIntroduction;
    private String competitiveAdvantage;
    private String marketProspects;
    private String energyConsumption;
    private String pollution;
    private String noise;
    private String otherConditions;
    private String teacherOpinion;
    private String collegeOpinion;
    private String officeOpinion;
    private String leaderOpinion;
    private String industry;
    private String otherIndustry;
    private String mainBusiness;
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<String> businessType;
    private String otherBusinessType;
    private String rentalArea;
    private String locationRequirement;
    private String rentalPeriod;
    private String floorRequirement;
    private String powerRequirement;
    private String waterRequirement;
    private String networkRequirement;
    private String otherRequirement;
    private String remarks;

    private Integer status;



    // 附件信息
    private String businessLicense; // 营业执照复印件
    private String legalRepresentativeId; // 法人身份证复印件
    private String lastYearFinancialStatement; // 上年度财务报表复印件
    private String proofOfIdentity; // 学生证/教师资格证/校友毕业证或学位证
    //教师资格证
    private String teacherCertificate; // 教师资格证复印件
    // 学生证
    private String studentCertificate; // 学生证复印件
    // 校友毕业证或学位证
    private String graduationCertificate; // 校友毕业证或学位证复印件

    @TableField(typeHandler = ListToStringHandle.class)
    // 知识产权情况
    private List<IntellectualProperty> intellectualProperties; // 知识产权列表




    @Data
    public static class IntellectualProperty {
        private String name; // 知识产权名称
        private String type; // 知识产权类别
        private Date applicationDate; // 申请时间
        private Date approvalDate; // 批准时间
        private String url;

        // Getters and Setters
    }



    @Data
    private static class EnterpriseMemberDTO {
        private String name;
        private String birthDate;
        private String job;
        private String school;
        private String title;
        private String education;
        private String major;
    }


    @Data
    private static class ShareholderDTO {
        private String name;
        private String ratio;
        private String nature;

        // Getters and Setters
        // Constructors
    }

}
